home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 November
/
EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso
/
earcd
/
program
/
assembly
/
snma-2.lha
/
SNMA
/
History
next >
Wrap
Text File
|
1995-10-08
|
10KB
|
210 lines
History
~~~~~~~
First, thank you for your bug reports, comments and suggestions.
Thanks to the following people (in no particular order):
(Sorry, if I have forgotten someone and for misspelled names).
Gunther Nikl, Veli Nuutimäki, Eric Augustine, Laura Mahony,
Marco Nelissen, Jarkko Vatjus-Anttila, Yambo.
V2.03
o One bug fixed from the option file loading, which caused random
crash.
o Bitfields can be defined like "<ea>,{o:w}".
o Some movec problems disappeared (this one is little mysterious,
since I didn't touch the whole movec thing).
o In ARexx mode, snma could flag some addressing modes as invalid,
because certain data structures had spurious values left from
the previous assembly.
o ARexx SET command works again.
o In (BD,An,Xn) register equates, which started with z, were not
recognized.
o QUIET switch disables now all output to Output().
o If expression ended to operator, snma read one long from the address
which was fetched from the string (one indirection too much). This
could cause buserr exception in 68000, depending on value it read.
o @ character is now normal symbol character, by default.
@ character in the beginning of symbol meant octal number specifier.
Since SAS/C uses it in the beginning of __regargs function names,
its behaviour has been changed. Use OCT commandline toggle to
allow octal numbers. There was also a bug, which caused no error
telling in @symbol case, when it was actually coded as octal number
- unsuccessfully.
V2.02
o BSS sections didn't honor mem type bits.
o Sometimes pc-relative addressing modes allowed small data references.
(if small data references were allowed).
o RTM was coded badly.
o Forcing Base Displacement to word or long didn't always work.
o " macro <macroname>" finally works.
V2.00
o (An,Xn) is finally allowed in 68000/010 cpu mode.
o tst lab was optimized to tst lab(pc) when only 68000/010 cpu was
allowed.
o Power ('^^') operator
o EOR/XOR ('^') operator ended expression
o Bitfield offset and width can now be defined after they use.
o Various small bugs fixed
o xdef and xref caused crash if operands had illegal chars.
o Floating point numbers with exponent were incorrect.
o FTENTOX was coded badly.
o CNUL, DX and MOVE16 caused snma to guru when generating
listing file.
o When running out of mem, requester allows retry.
o Memory usage for the end message (shell interface).
o Pre-defined (commandline & optfile) symbols.
o Macros with MEXIT and ENDC won't miss the ENDC.
o Immediate data range checking can be turned off and it works
for symbols which are declared after use.
o Pre-assembled include files, which contain symbol and macro
definitions of include files (was in V1.99 but I forget to
mention it here). See INCLUDE and Arexx/MAKEGB docs.
o ADDGB ARexx command lost main source file symbols after one
INCLUDE operation. ADDGB is now a bit slower when there are many
symbols, but it works as intended.
o Bitfield stuff was broken in V1.99.
V1.99
o Relative-relative (difference between labels) symbol was set as
relative (ext_def) instead of correct ext_abs when xdef'ed.
o Arexx startup now toggles snma on/off.
o Some bugs from INCBIN removed.
o "=" operator didn't produce FALSE (0) if the operands were not
equal.
o '040 stuff. MOVE16, CINV, CPUSH, MMU & FPU commands. Special regs.
o Object file is no longer deleted if snma is trying to produce
executable and there are errors and vice-versa.
o Floating point equate file equates were screwed up as well as
packed type conversion (nobody seems to use this :).
o CASESEN=OFF caused xdefs to fail.
o local symbols .l and .w were mixed up with long and word suffix,
resulting enforcer hit and garbage expression.
o Dcb directive works now like ds directive if it has only one
parameter.
o Lists with two successive commas are now handled (like x,,y).
o Searches include files also from the directory where snma was
started from (used to search only from where source file is).
V1.97
o Case-insensitive symbol names option.
o ELSE directive works now.
o Some new directives (types.i stuff mainly).
o New expression handler (boolean operators).
o IFs were tested even if assembly was toggled off.
o Some errenous expressions - like (A)A - don't crash anymore.
o Multilevel optimizing.
o Macro directive allows macro name as parameter.
o DX directive (BSS to code or data hunk).
o Absolute+Relative bug fixed (if in different hunks).
o divu.l works (argh).
o LINE DEBUG HUNK
o Octal numbers.
V1.95
o ERRCOLOR keyword in template. Highlight error char.
o AREXX/REMGB without parameters didn't work (+ fixed one mungwall hit
from it).
o QUIET startup switch disables only startup message. (You can redirect
output to the nil: if you don't want any output).
o SNMAOPT M controls now movem optimizing.(It was in Q flag).
o End message is now little different in shell mode.
o OPT directice changed to SNMAOPT to avoid any confusion.
o fmovecr generated also extended immediate data.
o Output file naming failed with ".s" extension (ooouups).
o Behaves little better when running out of memory.
o LABEL INCBIN <file>, LABEL get wrong value. (Veli Nuutimäki).
o NULL byte in source ends it (to avoid to assemble binaries).
o SELFCHECK arexx command.
o Fmove.l #imm,fpcr works.
o FBxx works now (Eric Augustine).
o shift/rotate to <ea> generated spurious code.
o INDEX register scale was allowed in 68000/010.
o CNOP started to act like maniac if PC was more than 2^16.
o addq/subq with undefined (at 1st pass) value, caused snma to begin
'flying high again' actions. (Gunther Nikl).
o "'" or '"' works now (Gunther Nikl).
o HUNK_RELOC32SHORT (implemented as 1015) to executables.
o Produces also executables. (Laura Mahoney).
o OPT A (address mode optimizing) was implemented as OPT E.
o code_f, data_f, bss_f section types were not recognized.
o FO, CLRFO, SETFO directives.
o RS, RSRESET. RSSET directives (Marco Nelissen).
o 'Old syntax' address mode had problems when base displacement had
parenthesis around it.
o Allows 99 macro parameters plus "<something>" parameters.
V1.91
o if any of cmpa operands had symbol which was relative or not defined
in pass1, snma had serious problems.
o If macro called another macro, \@ (unique label for one macro call)
was different before the another macro call and after it.
o Symbols which had only one char were not handled correctly.
V1.90
o moveq didn't allow xref'd data.
o mc68xxx directives
o Command line additions ([-option])
o Object code naming now also checks ".s" and ".a" suffix.
o OBJ filename in template was ignored (oh my).
o tst with pc-relative was allowed on 68000 mode.
o ext_ref symbols with same name were written many times, causing
larger object file size (not actual code size).
o xdef symbols were written to the all sections.
o divu.l wasn't allowed.
o Equates with relative components are handled better now.
o Minimal WorkBench support
o \*VALOF() + other macro 'insert functions'.
o abslong to pc-relative optimizing.
o DC generated too much data if the 2nd operand of the
previous instruction was one which took some space.
o REPT/ENDR directives
o Global symbol table.
o In cases where reloc was needed didn't create it, when
symbol referred to equate which type was relative.
o Equates with relative components are no longer written to
the symbol list.
o CHDIR (AREXX) command called FreeVec with wrong argument,
causing memory loss (no crash, at least in my system).
V1.70
o BTST/BCHG/BSET/BCLR Dn,<ea> set always <ea> as d0. (uups)
o MOVEP didn't allow zero displacement.
o ENDC switched assembly on sometimes when it shouldn't.
V1.68
o Some minor bug fixes and changes (okay, I forgot them).
V1.65
o Address components which started with 'Z' or 'z' were
parsed to the totally wrong thing. (Bad one).
o IFGT did unsigned test, instead of signed.
o Didn't notice all cases when macro was already defined.
o Include <devicename:filepath> didn't work.
o Expression handler didn't catch all undefined symbols.
o AREXX, SET command.
o 'TST An' in 020+ mode wasn't allowed.
o Destination address mode optimizing in move instruction
generated spurious opcodes in some cases.
o Movem->move optimizing.
V1.60
o AREXX PORT finally added
o Several bugs fixed
o LONGBRA flag to the template
o ZAn no longer required if An omitted in addressing mode.
========================================================================
Probaply I don't remember all the changes and fixed bugs, but I
hope all the major ones are here.
First released version of SNMA is 1.39.